The use of dialogs as part of a computer's graphical user interface (GUI) is known. As used herein, a “dialog” includes a window or other portion of a graphical computer display which appears in order to communicate information from a computer program and/or obtain information from the user. A familiar example is the “message box” dialog used in various versions of the WINDOWS operating system (available from Microsoft Corporation of Redmond, Wash.). A message box often contains a brief message (e.g., “Save file before closing program?”) and one or more graphical buttons for possible responses (e.g., “yes,” “no,” “ok,” etc.). Dialogs are also used for more complex purposes, such as editing properties of an object, adjusting operational parameters of a program, etc. Some dialogs can be quite extensive and open-ended. In other words, the dialog may present the user with a large number of possible options; some of those options may be loosely related or unrelated, and the user may not be given clear direction about what is required.
A well-designed dialog permits a user to interact very efficiently with a computer program. Although criteria for evaluating dialogs can vary, a good dialog will often make it easy for a user to quickly understand what is needed and what the response options may be. Unfortunately, dialogs are often misused and/or poorly designed by software developers. In some cases, a user must carefully study a dialog in order to derive what information the computer program is conveying and/or seeking. This can require excessive time and try the user's patience. Even if the user is able to determine what a badly-designed dialog is seeking, the proper response may not be readily apparent. This can result in a user selecting an undesired option, and may cause serious problems.
Consistency across dialogs generated by various computer programs is also an area of concern. In many environments, a single computer will often have software from numerous sources. One company may develop the operating system (OS), while other companies may develop individual application programs. The OS and other programs executing on the computer may all generate dialogs to obtain user input and/or advise the user of important information. If all of these dialogs have a similar design, the user becomes accustomed to a general dialog format. The user then knows where to look in each dialog for important information and can thereby respond more quickly. If the dialogs have different layouts and are otherwise not consistent in how they communicate information and seek user input, the user may be required to spend more time studying each dialog. In part to promote consistent dialog design, various guidelines have been promulgated. Unfortunately, software developers frequently fail to observe such guidelines. The developers may be unaware of or not fully understand the guidelines, or may simply be unwilling to follow them.
Software developers create dialogs in various manners. For example, various versions of the WINDOWS operating system provide a MessageBox function. A software developer can include this function in a program in order to generate a message box type of dialog. When calling the MessageBox function, an application program passes several parameters to the OS, including a pointer to a text string and details regarding various buttons to be displayed for a user response (“Ok,” “Cancel,” etc.). The OS then generates a message box dialog displaying the text string and providing any response buttons specified in the function call. The MessageBox function is well suited to creating relatively simple dialogs. However, many developers overuse this function. Specifically, developers often attempt to “shoe horn” a more complex dialog into a message box. As one example, some developers treat the text region of a message box as a monolithic block and expect the user to fully read and digest all of that text. This can result in dialogs such as is illustrated in FIG. 1. In the example of FIG. 1, the message is not concise and the most important information can be hidden from the user. Moreover, expecting all users to carefully review such detailed text within a dialog ignores the reality that many users are impatient and unwilling to read extensive dialog text.
Other tools are available that permit a developer to generate more complex dialogs that may not be suitable for message boxes. However, these tools require substantially more effort on a developer's part. Instead of simply calling a function that passes a pointer to text and specifies certain buttons, the developer must carefully specify the sizes, shapes and positions of many or all of the dialog components. For example, suppose a developer wished to display a single prominent message, to provide a number of response option controls (e.g., buttons), and to place a brief description by each of those controls. The developer would have to specify the size, shape and position of the prominent message; the sizes, shapes and positions of the response controls; and the sizes, shapes and positions of the response control descriptions. Human nature and the economics of software development dissuade many developers from investing the time to code a well-designed dialog.
For these and other reasons, there remains a need for methods and systems to assist software developers in creating better dialog user interfaces.